/*
 * 文件名：RoleInfoTransactionImp.java
 * 版权：Copyright by www.wootide.com
 * 描述：
 * 修改人：ozm
 * 修改时间：2013-1-30
 * 跟踪单号：
 * 修改单号：
 * 修改内容：
 */
package com.wootide.ets.sys.menu.transaction.imp;

import org.springframework.beans.BeanUtils;

import com.wootide.ets.common.ETSRuntimeException;
import com.wootide.ets.common.ErrorCodes;
import com.wootide.ets.common.Page;
import com.wootide.ets.common.QueryCondition;
import com.wootide.ets.common.QueryResults;
import com.wootide.ets.common.dao.CommonDao;
import com.wootide.ets.log.syslog.RunLog;
import com.wootide.ets.sys.menu.dao.MenuInfoDao;
import com.wootide.ets.sys.menu.pojo.MenuInfo;
import com.wootide.ets.sys.menu.transaction.MenuInfoTransaction;

/**
 * 
 * 菜单事务实现层
 * 〈功能详细描述〉
 * @author develop
 * @version 2013-5-28
 * @see MenuInfoTransactionImp
 * @since
 */
public class MenuInfoTransactionImp implements MenuInfoTransaction
{
    /**
     * 注入运行日志
     */
    private RunLog runLog;
    
    /**
     * 公共数据访问层实例
     */
    private CommonDao commonDao;
    
    /**
     * 菜单数据访问层实例
     */
    private MenuInfoDao menuInfoDao;
    
    public QueryResults queryForPages(Page page, QueryCondition queryConditon)
    {
        
        // 打印方法入口参数
        runLog.debug("page=" + page);
        runLog.debug("queryConditon=" + queryConditon);
        QueryResults queryResults = commonDao.queryForPages(page, queryConditon);
        return queryResults;
    }
    
    public void addOneMenu(MenuInfo menuInfo)
    {
        // 打印方法入口参数
        runLog.debug("menuInfo="+menuInfo);
        
        // 根据菜单名检查唯一性
        Integer num = menuInfoDao.findNumByMenuName(menuInfo.getMenuName());
        // 菜单记录已经存在
        if (num > 0)
        {
            throw new ETSRuntimeException("Menu Existed!",
                    ErrorCodes.Sys.Menu.MENU_EXIST);
        }
        commonDao.addOneObject(menuInfo);
        
    }

    public MenuInfo modOneMenu(MenuInfo menuInfo)
    {
        // 打印方法入口参数
        runLog.debug("menuInfo=" + menuInfo);
        MenuInfo oldMenuInfo = menuInfoDao.findOneByMenuId(menuInfo.getMenuId());
        
        //判断要修改的记录是否存在
        if (null == oldMenuInfo)
        {
            throw new ETSRuntimeException("Menu not Exist!",
                    ErrorCodes.Sys.Menu.MENU_EXIST);
        }
        
        //获取原始数据副本
        MenuInfo oldMenuInfoCopy = new MenuInfo();
        BeanUtils.copyProperties(oldMenuInfo, oldMenuInfoCopy);
        
        //修改用户信息
        return oldMenuInfoCopy;
    }

    public MenuInfo delOneMenu(Integer innerIndex)
    {
        return null;
    }

    public MenuInfo viewOneMenu(Integer innerIndex)
    {
        
        return null;
    }
    

    public void setRunLog(RunLog runLog)
    {
        this.runLog = runLog;
    }

    public void setCommonDao(CommonDao commonDao)
    {
        this.commonDao = commonDao;
    }

    public void setMenuInfoDao(MenuInfoDao menuInfoDao)
    {
        this.menuInfoDao = menuInfoDao;
    }
}
